1. Field of the Invention
The present invention relates to integrated circuit design tools. In particular, the present invention relates to integrated circuit design tools that optimize area performance and signal integrity in integrated circuits.
2. Discussion of the Related Art
Existing top-down design methods focus on optimizing transistors and gates, and model interconnect lines as merely xe2x80x9cparasiticxe2x80x9d elements of these transistors and gates. Implicit in this view of interconnect lines is the assumption that wiring delays and congestion in the interconnect lines are secondary to transistors and gates, and therefore can be taken into account as corrections to the timing and density models of the transistor and gates. As feature sizes of integrated circuits continue to shrink, this assumption is clearly no longer valid. In fact, interconnect is expected to dominate both performance and density in the near future.
FIG. 1 shows a typical existing design method 100. As shown in FIG. 1, an integrated circuit design is captured by a design entry step 101. Design entry step 101 is typically facilitated by a design capture system allowing the user to specify the logic design of the integrated circuit graphically, through a hardware description language (e.g., VHDL), or both. Typically, at design entry step 101, the user need not specify all elements of the design at the logic gate level. Many elements can be specified at a higher functional level (e.g., register-transfer level).
Upon completion of design entry step 101, a functional simulation step 102 is typically carried out using a functional simulator to verify functional behavior of the design. Based on a verified functional level description (xe2x80x9cfunctional designxe2x80x9d), the functional design can then be synthesized to the logic gate level in logic synthesis step 104, using a logic synthesis tool. Typically, at logic synthesis step 104, additional circuits for diagnostic and test purposes are included to provide a synthesized logic circuit (xe2x80x9cgate-level designxe2x80x9d). Such additional circuits may include, for example, test circuits for a boundary scan design under the JTAG standard.
Using the gate-level design, an initial circuit partitioning can be performed, i.e., floor planning step 103, to allow a first estimate of circuit size and to group highly connected portions of the design together to facilitate a subsequent layout step. In addition, a logic simulation (simulation step 109) and a static timing analysis (timing analysis step 108) are performed on the gate-level design to verify the gate-level design""s functional behavior, and to extract estimates of timing parameters.
During this time, at formal verification step 107 and test structure verification step 106, the gate-level design is verified against both the functional design and a behavior description of the additional included circuits to ensure both the functional design""s and the test structure""s behaviors are preserved. Further, the gate-level design is also checked, at technology checking step 105, that technology-specific logic design rules are not violated.
The gate-level design, together with timing information from the static timing analysis, are integrated into a pre-layout design database in front-end processing step 110. At this time, a pre-layout signoff step 111 signifies the beginning of the physical realization phase of the integrated circuit design. FIG. 1 shows a layout step 112 in which the physical realization (xe2x80x9clayoutxe2x80x9d) is created by performing a number of tasks (xe2x80x9clayout design tasksxe2x80x9d) iteratively.
Typically, layout design tasks include, generally, the steps of circuit partitioning, placement and routing. As mentioned above, an initial circuit partition based on the gate-level design is already provided at floor-planning step 103. Based on this initial partition, the circuit partitioning step in layout step 112 further refines circuit partitions down to the level of individual xe2x80x9ccellsxe2x80x9d (e.g., logic gates or macro cells). These cells are then placed according to some constraints, which are typically expressed by a cost function. Typical constraints relate to area, power and local timing. The cells so placed are then routed to provide the necessary interconnect. The routing is also typically performed according to certain constraints, such as local timing and power constraints.
In the prior art, a final static timing analysis step 113 is then performed on the routed layout design, incorporating into the timing information delays introduced by the routing step. If final static timing analysis step 113 uncovers timing problems in some signal paths, an optimization cycle is initiated by flagging the gates along the problematic signal paths and returning the gate-level design back to logic synthesis step 104. In logic synthesis step 104, logic synthesis techniques are applied to improve the gate-level design in a revised gate-level design. Steps 105-113 are then repeated on the revised gate-level design. This optimization cycle is repeated until all timing problems are resolved, represented by the post-layout sign-off step 114. Test patterns can then be generated in an automatic test pattern generation (ATPG) step 116, and the final layout design can then be manufactured.
The existing top-down design methods not only suffer from the defective interconnect model mentioned above, but also from the long elapsed time between optimization cycles. With each optimization cycle, the logic synthesis, circuit partitioning, placement and routing are xe2x80x9cpointxe2x80x9d tools, each operating on the entire design. Such loose coupling between tools in this optimization cycle is inefficient, since the steps towards convergence to an optimized layout tend to be small for each optimization cycle. For example, any possible improvement realizable by resynthesis of the logic circuit that arises because of a different placement of cells cannot be taken advantage of until the next optimization cycle. Furthermore, at the current and future circuit densities, the amount of CPU cycles used in each point tool in the optimization cycle is enormous, with many cycles expended in repeating tasks also performed in the previous optimization cycles. Further, since each existing point tool is typically acquired from a different vendor, there is substantial inefficiency in the interface between point tools. Typically, each point tool reads into memory a large data file provided by an upstream point tool, and provides its results in another large data file to be read by a downstream point tool.
The long optimization cycles can be alleviated somewhat by the use of parallel point tools. An example of such a parallel point tool is disclosed in U.S. Pat. No. 5,495,419 to Rostoker et al., entitled xe2x80x9cINTEGRATED CIRCUIT PHYSICAL DESIGN AUTOMATIC SYSTEM UTILIZING OPTIMIZATION PROCESS DECOMPOSITION AND PARALLEL PROCESSING,xe2x80x9d issued Feb. 27, 1996. In Rostoker et al, a parallel placement algorithm is executed by parallel processors, thereby shortening the time to achieve the placement function.
Thus, a method is desired for optimizing the integrated circuit design process, which both takes advantage of parallel algorithms and closely couples the layout design tasks in the optimization cycle is desired.
The present invention provides a method for optimizing a layout design, which minimizes the optimization cycle by incorporating interconnect wiring delays and performing logic optimization in the placement and routing operations. In one embodiment of the present invention, the method includes the steps of: (a) obtaining a first placement of circuit elements of a gate-level circuit; (b) providing routing between circuit elements; (c) performing a timing analysis to provide estimates of interconnect delay between circuit elements; (d) performing a logic optimization operation to obtain a second gate-level design based on a cost function. The steps (a)-(d) are reiterated until the cost function becomes less than a predetermined threshold. In one embodiment, a clustering of circuit elements allows circuit elements having high connectivity amongst them to be kept together and thus placed in close proximity of each other, while minimizing inter-cluster interconnect wiring delays.
In that embodiment, the method is iterated over an outer-loop in which each iteration divides circuit elements into clusters and applies steps (b) through (e) on the clusters until the cluster includes only primitive circuit elements.
In one embodiment, the logic optimization operation, which is performed concurrently with the placement and routing operations, (i) reassigns circuit elements between clusters, (ii) inserts or deletes signal buffers between circuit elements (iii) synthesizes alternative implementations of logic functions.
The method of the present invention can be implemented in a parallel processing design automation system to achieve high performance. Such a parallel processing system includes (a) multiple central processing units (CPUs) executing independently of each other; (b) a shared memory accessible by each CPU for holding data structures of the integrated circuit design; and (c) a control program managing a task list which specifies tasks for optimizing the integrated design. The control program assigns tasks on the task list to each of the CPUs. The tasks include placement, performance analysis, logic optimization and routing. The control program provides a locking mechanism for locking data structures stored in the shared memory to support concurrent operations by the CPUs each accessing the integrated circuit design represented by the data structures. Further, the parallel processing design automation system supports multithread execution. Parallelism is further enhanced by adopting algorithms for placement, timing analysis, logic optimization and routing suitable for parallel execution by the multiple CPUs each accessing the design data structures stored in the shared memory.
The present invention is better understood upon consideration of the detailed description below in conjunction with the accompanying drawings.